#include <stdio.h>
    #include <stdlib.h>
    #include <fcntl.h>//其中定义了很多宏和诸如open,close函数
    #include <unistd.h>
    #include <sys/ioctl.h>//ioctl函数的头文件

    void showbuf(char *buf);
    int MAX_LEN=32;

    int main()
    {
        int fd;
        int i;
        char buf[255];

        for(i=0; i<MAX_LEN; i++){//给数组元素依次赋值
            buf[i]=i;
        }

        fd=open("/dev/demo",O_RDWR);//以既可以读又可以写的方式打开文件
        if(fd < 0){
            printf("####DEMO  device open fail####\n");
            return (-1);
        }
        printf("write %d bytes data to /dev/demo \n",MAX_LEN);
        showbuf(buf);//先显示一下要写入什么，然后写入
        write(fd,buf,MAX_LEN);

        printf("Read %d bytes data from /dev/demo \n",MAX_LEN);
        read(fd,buf,MAX_LEN);
        showbuf(buf);//先读出来字符串到buf中，再显示

        ioctl(fd,1,NULL);
        ioctl(fd,4,NULL);
        close(fd);
        return 0;

    }

    void showbuf(char *buf)
    {
        int i,j=0;
        for(i=0;i<MAX_LEN;i++){
            if(i%4 ==0)
                printf("\n%4d: ",j++);
            printf("%4d ",buf[i]);
        }
        printf("\n*****************************************************\n");
    }
